//
//  NSString+YLExtension.h
//  DoulinClient
//
//  Created by YLKJ on 2018/12/20.
//

#import <UIKit/UIKit.h>

@interface NSString (YLExtension)

/** 是否为空 */
- (BOOL)isNil;
/** 除空 */
- (NSString *)nonNil;

+(BOOL)isempty:(NSString *)string;

#pragma mark - ------------------ 除空格和换行 ------------------
/** 除空格和换行 */
- (NSString *)trim;

#pragma mark - ------------------ 其它 ------------------
/** 转成 URL */
- (NSURL *)toUrl;
/** md5 */
- (NSString *)md5;
/** 保留两位小数 */
- (NSString *)decimalFix;
/** 小写首字母 */
- (NSString *)lowercaseFirstCharacter;
/** 大写首字母 */
- (NSString *)uppercaseFirstCharacter;
/** 删除字符串前面的0, 00, 000 */
- (NSString *)deletePrefixZeroInString;

#pragma mark - ------------------ 各种验证 ------------------
/** 是否是有效手机格式 */
- (BOOL)isValidPhone;
/** 是否是有效验证码 6位 */
- (BOOL)isValidCode;
/** 判断输入的密码 */
- (BOOL)isValidPwd;
/** 是否是有效邮箱格式 */
- (BOOL)isValidEmail;
/** 是否是汉字 */
- (BOOL)isValidChinese;
/** 是否是英文 */
- (BOOL)isValidEnglish;

#pragma mark - ------------------ attributedText ------------------
/** ¥0.00  符号:font1  数字:font1(无横线) */
- (NSMutableAttributedString *)redTextFont1:(CGFloat)font1 font2:(CGFloat)font2;
/** ¥0.00  符号:font1  数字:font1(有横线) */
- (NSMutableAttributedString *)grayTextFont1:(CGFloat)font1 font2:(CGFloat)font2;
/** ¥0.00  符号:font1  数字:font1(无横线) */
- (NSMutableAttributedString *)blackTextFont1:(CGFloat)font1 font2:(CGFloat)font2;
/** ¥0.00  color:颜色 符号:font1  数字:font1(无横线) */
- (NSMutableAttributedString *)textColor:(UIColor *)color font1:(CGFloat)font1 font2:(CGFloat)font2;

#pragma mark - ------------------ <#note#> ------------------
/** string 格式为 yyyy-MM-dd */
+ (NSDate *)dateFromString:(NSString *)string;
/** 返回格式为: yyyy-MM-dd */
+ (NSString *)stringFromDate:(NSDate *)date;
/** 返回格式为: yyyy-MM-dd HH:mm:ss */
+ (NSString *)timeFromInterval:(NSTimeInterval)time;
/** 转成 yyyy-MM-dd HH:mm:ss */
+ (NSString *)currentDate;

#pragma mark - ------------------ <#note#> ------------------
/** <#note#> */
- (NSString *)decodeURLString;
/** <#note#> */
- (NSString *)encodedURLParameterString;

#pragma mark - ------------------ <#note#> ------------------
/** 动态计算文字的宽高（单行）
 *  @param font 文字的字体
 *  @return 计算的宽高
 */
- (CGSize)mh_sizeWithFont:(UIFont *)font;
/** 动态计算文字的宽高（多行）
 *  @param font 文字的字体
 *  @param limitSize 限制的范围
 *  @return 计算的宽高
 */
- (CGSize)mh_sizeWithFont:(UIFont *)font limitSize:(CGSize)limitSize;
/** 动态计算文字的宽高（多行）
 *  @param font 文字的字体
 *  @return 计算的宽高
 */
- (CGSize)mh_sizeWithFont:(UIFont *)font limitWidth:(CGFloat)limitWidth;
/** 根据字体大计算高度
 *  @param font 字体大小
 *  @param height    控件宽度
 */
- (CGFloat)widthForSizeFont:(UIFont *)font andHeight:(float)height;
/** 根据字体大戏计算宽度
 *  @param font 字体大小
 *  @param width   控件高度
 */
- (CGFloat)heightForSizeWithFont:(UIFont *)font andWidth:(float)width;

@end
